Swivel search system

ABSTRACT

A method and apparatus for performing an integrated search is provided. An interface is provided that allows users to search and select any data related to a searchable term. Searchable terms may comprise titles of content, actors, and tags. Upon receiving results from the initial search, the user progresses through the initial search by selecting a result from the initial search and conducting a further search of that selection. The search may progress through many layers of searching in order to find information useful to the user and the user may perform actions based upon results of the search. The search implements a display with two columns, the first column displaying selectable data, and the second column displaying results to the selected data. The search is further customizable based upon a privacy level selected by the user.

CROSS-REFERENCE TO RELATED APPLICATIONS; PRIORITY CLAIM

This application claims benefit to U.S. Provisional Application60/930,419, filed May 15, 2007, the entire contents of which are herebyincorporated by reference as if fully set forth herein, under 35 U.S.C.§ 120.

This application is related to U.S. patent application Ser. No. ______(Attorney Docket No. 60097-0425), filed May 15, 2008, U.S. patentapplication Ser. No. ______ (Attorney Docket No. 60097-0426), filed May15, 2008, and U.S. patent application Ser. No. ______ (Attorney DocketNo. 60097-0427) filed, May 15, 2008, each of which is owned by Applicantand is incorporated herein in its entirety by this reference thereto.

FIELD OF THE INVENTION

The present invention relates to performing searches on digital videorecorders (“DVRs”).

BACKGROUND

The approaches described in this section are approaches that could bepursued, but not necessarily approaches that have been previouslyconceived or pursued. Therefore, unless otherwise indicated, it shouldnot be assumed that any of the approaches described in this sectionqualify as prior art merely by virtue of their inclusion in thissection.

The introduction of the DVR to the consumer world has revolutionized theway users watch and record television programs. DVRs eliminate many ofthe complications of VCRs and the need for video tapes. DVRs recordtelevision programs on a hard drive that is capable of storing a largenumber of television programs. Because DVRs are usually box-like inshape, and are often found sitting on top of the television sets towhich they are connected, DVRs typically are included in the broadcategory of devices now called “set-top boxes.” Much like VCRs, DVRsreceive one or more television signals (which may represent televisionprograms and/or movies) as input from cables or satellite dishes, (or,in some cases, unlike VCRs, from broadband network connections) and alsooutput television signals to a television set or other display.

A DVR's user can instruct the DVR to schedule, for recording, specifiedcontent that may be broadcasted or otherwise transmitted to the DVR atsome future time. Thus, the user can schedule the automatic recording ofthe content in advance of the time that the DVR will receive thecontent. For example, the user can instruct the DVR to recordunspecified content that will be broadcasted on a specified channelbeginning at a specified date and time and ending at another specifiedtime. For another example, the user can instruct the DVR to record aspecified showing (on a specified channel, and beginning at a specifieddate and time) of a specified movie, specified event, or specifiedepisode of a multi-episode television series. For another example, theuser can instruct the DVR to record the next to-be-broadcasted instanceof a specified movie, specified event, or specified episode of amulti-episode television series without specifying the date, time, orchannel on which that instance will be broadcasted. For another example,the user can instruct the DVR to record all (or all first-run) episodesof a multi-episode television series on a specified channel withoutspecifying the dates or times at which those episodes will bebroadcasted. For another example, the user can instruct the DVR torecord all (or all first-run) instances of movies, events, or episodesof a multi-episode television series that are associated with aspecified keyword, a specified actor, and/or a specified directorwithout specifying the titles, channels, or broadcasting times of thoseinstances.

A user may wish to view information about a television program or moviethat they have previously recorded. When a user requests to viewinformation about a specific television program, the information mayinclude a synopsis of the plot of the program and the credits for theprogram that include the primary actors and director. If a user wantedto view any content that is associated with any of the information thatis being viewed, such as the actor that appears in the televisionprogram, then the user would have to begin a new search for the actorand then find content for that actor.

Similarly, a user may wish to search and view information about aparticular television program. The user navigates to a search screen andenters letters corresponding to the title of the television program.When the television program is found, the plot and credits of thatparticular television program appears. The user then may wish to searchbased upon information about the particular program such as an actor,but in order to accomplish that task, the user performs an entirely newsearch.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention is illustrated by way of example, and not by wayof limitation, in the figures of the accompanying drawings and in whichlike reference numerals refer to similar elements and in which:

FIG. 1A illustrates an example system in which program data progressivesearch may be implemented, according to an embodiment of the invention;

FIG. 1B is a block diagram illustrating a general overview of thecomponents of a Digital Video Recorder (DVR), according to an embodimentof the invention;

FIG. 2 illustrates an example of a DVR-presented main menu whichcontains a menu item whose selection initiates a process for findingprogram content on the DVR, according to an embodiment of the invention;

FIG. 3 illustrates an example of a “Find Programs” menu that a DVRdisplays that contains a menu item whose selection initiates a processfor progressive search on the DVR, according to an embodiment of theinvention;

FIG. 4 illustrates an example of a DVR-presented screen for progressivesearch that allows for the search of any word in program titles or tags,according to an embodiment of the invention;

FIG. 5 illustrates an example of a DVR-presented screen that displaysthe results of a search performed on the progressive search screen,according to an embodiment of the invention;

FIG. 6 illustrates an example of a DVR-presented screen that displaysprogram content information for a particular content when the cursor islocated on that particular content, according to an embodiment of theinvention;

FIG. 7 illustrates an example of a DVR-presented screen that displaysprogram content information for a particular content when the cursor ismoved to that particular content, according to an embodiment of theinvention;

FIG. 8 illustrates an example of a DVR-presented screen that displaysprogram content information and that the data in the program contentinformation is selectable when the program is selected, according to anembodiment of the invention;

FIG. 9 illustrates an example of a DVR-presented screen that displayscontent items associated with an actor selected in the progressivesearch, according to an embodiment of the invention;

FIG. 10 illustrates an example of a DVR-presented main menu thatdisplays a menu item whose selection initiates a process to viewpreviously recorded content on the DVR, according to an embodiment ofthe invention;

FIG. 11 illustrates an example of a DVR-presented screen that displayspreviously recorded program content that may be viewed, according to anembodiment of the invention;

FIG. 12 illustrates an example of a DVR-presented screen that displaysprogram content information for a particular program when thatparticular program is being viewed, according to an embodiment of theinvention;

FIG. 13 illustrates an example of a DVR-presented screen that displaysmore options that may be selected for a particular program when thatparticular program is being viewed, according to an embodiment of theinvention;

FIG. 14 illustrates an example of a DVR-presented screen that displaysprogram content information for a particular program within progressivesearch, according to an embodiment of the invention;

FIG. 15 illustrates an example of a DVR-presented screen that displaysupcoming show times of a program when the “Upcoming Showings” option isselected in progressive search, according to an embodiment of theinvention;

FIG. 16 illustrates an example of a DVR-presented screen that displaysavailable downloads of a program when the “Available Downloads” optionis selected in progressive search, according to an embodiment of theinvention;

FIG. 17 illustrates an example of a DVR-presented screen that displaysrelated programs when the “If you like this” option is selected inprogressive search, according to an embodiment of the invention;

FIG. 18 illustrates an example of a DVR-presented screen that displaysassociated content of a particular director when the particular directoris selected in progressive search, according to an embodiment of theinvention;

FIG. 19 illustrates an example of a DVR-presented screen that displaysrelated tags in progressive search, according to an embodiment of theinvention;

FIG. 20 illustrates a flowchart of the opt-in process for privacy forprogressive search, according to an embodiment of the invention;

FIG. 21 is a block diagram illustrating an example of a servicecommunicating with broadband and broadcast databases according to anembodiment of the invention;

FIG. 22 illustrates an example of a user interface screen that displaysan episode guide according to an embodiment of the invention, accordingto an embodiment of the invention; and

FIG. 23 is a block diagram of a system on which embodiments of theinvention may be implemented.

DETAILED DESCRIPTION

In the following description, for the purposes of explanation, numerousspecific details are set forth in order to provide a thoroughunderstanding of the present invention. It will be apparent, however,that the present invention may be practiced without these specificdetails. In other instances, well-known structures and devices are shownin block diagram form in order to avoid unnecessarily obscuring thepresent invention.

Embodiments are described herein according to the following outline:

-   -   1.0 General Overview    -   2.0 Structural Overview    -   3.0 Example Techniques and Processes        -   3.1 Entering Swivel Search from a Search        -   3.2 Entering Swivel Search from Viewed Content        -   3.3 Options in Swivel Search            -   3.3.1 Tags        -   3.4 Privacy in Swivel Search        -   3.5 Additional Features in Swivel Search        -   3.6 Unified Searching of Broadband and Broadcast Multimedia            Content        -   3.7 Filtering Broadband and Broadcast Multimedia Content            Search Results    -   4.0 Implementation Mechanisms

1.0 GENERAL OVERVIEW

The needs identified in the foregoing Background, and other needs andobjects that will become apparent from the following description, areachieved in the present invention, which comprises methods to performuniversal swivel search.

As the abundance of programming content proliferates, users may wish toperform searches based upon any data related to that programmingcontent. Upon receiving related data, the user may wish to “swivel”through the initial search by selecting any term from the initial searchresults and conducting a further search of that selected term. Thisswivel search may progress through many layers of searching in order toreach particular information that the user deems useful. As used herein,“universal swivel search” refers to the interface and technique tosearch for content and any data that results based upon that content,with the ability to progress through many layers of searching. Inaddition, terms other than “swivel” search may be used to refer to theinterface and technique, such as, but not limited to, “progressive”search or “pivot” search.

In an embodiment, an interface is provided that allows users to selectany term or data that is related to a particular content in order tofind all other content associated with that selected term or data. Asused herein, data and terms related to a particular content may include,but is not limited to credits, tags, or related programs. Credits mayrefer to, but is not limited to actors, character names, directors,producers, writers, production studio, or any other information thatrelates to the production of a particular content. Related programs areprograms that may be similar to the selected content and may be similarbased upon any type of criteria or by any means. For example, relatedprograms might be determined based upon aggregating data from manydifferent users, through an editorial service that originates from aservice provider, or based upon any criteria that may be used todetermine related programming. Tags refer to a set of words, pictures orother media used to link various pieces of content together and arefurther discussed in section 3.3.1 of this Application.

As an example, a user views the program details for a particular episodeof the television program “24,” an action drama television showdepicting the life of a U.S. government agent in real-time, based upon aprevious recording. From the program details screen, the user is able tosee “Kiefer Sutherland” and “Carlos Bernard” as actors of the particularepisode of the television series. The director and writer also appearfor the particular episode. Upcoming broadcasts in the near future andavailable broadband content that may be downloaded for “24” appear. Tagsrelated to the series, such as “Treason,” “Abduction,” and “Crime”appear along with content that may be downloaded or scheduled tobroadcast that are related to “24.” For example, shows that might berelated to “24” are “Prison Break,” a television drama about a manwrongfully sentenced and his brother's plan to help him escape fromprison, and “The Unit,” a television drama about a top secret militaryunit.

From the program details screen, the user is able to select particularepisodes of “24” to record as well as broadband content that may bedownloaded. However, to have a more effective search, the screen thatcontains the related content data may also be searchable. For example,when the user selects Kiefer Sutherland from the program details screen,a screen that contains content where Kiefer Sutherland appears or thatis related to Kiefer Sutherland is shown. In an embodiment, any of thecontent related to Kiefer Sutherland is selectable to view data relatedto that selected content. When data related to the selected contentappears, the user may select any term or data in order to view contentrelated to that selected data. With each succeeding screen of contentand associated data, the user may select terms to “progress,” “swivel,”or “pivot” from one search to the next.

In an embodiment, a service receives search requests from client systemsand performs an integrated search across databases containinginformational data for broadcast content and broadband content using thereceived search criteria. The service may be owned or operated by aservice provider, third party, etc. Owners of client devices are chargeda fee by the service provider, third party, etc., for access to thedatabase search service, content recording scheduling, content downloadservice, etc. A user enters search criteria on a client device. Theclient device can be a DVR, set-top box, cell phone, handheld device,laptop, PC, etc., for example.

The client device formulates a search request given the user's input andsends the search request to the service. The service receives the searchrequest from the client device and formulates a query for at least onebroadband database and at least one broadcast database. The broadbanddatabase contains data from partners of the service provider such as:Amazon.com, RocketBoom, dLife®, The New York Times®, and CNET®.Broadband databases may exist at each partner's server. The servicequeries each partner's database with a compatible query that the servicecreates using information regarding the type of database queries eachpartner's database requires. Data in the broadband database(s) consistsof links to multimedia content that are available for download from thepartners. The data also includes information describing the multimediacontent such as: program description, program synopsis, program rating,actors, directors, producers, program title, pricing, etc., as well assearch data tags.

In an embodiment, the partners pay the service provider a fee forplacing data in the database or for having their database searched bythe service. For example, partners may pay a fixed fee or a fee based onthe number of times that the service queries the partner's database.

The broadcast database contains data from electronic program guide (EPG)providers such as Tribune Media Services®. The EPG data describesprograms that are available from many different broadcasters andservices such as: DirecTV®, Comcast®, CableVision®, etc. The EPG datacontains information describing the program such as the channel that theprogram is available on, program description, program synopsis, programrating, actors, directors, producers, program title, etc., as well assearch data tags.

The service performs searches on both databases using the search queriesthat it created. The databases can be databases that the service candirectly access or database servers hosting the databases or otherdatabase services. The service receives or generates results from thesearch queries and organizes the retrieved information into a formatthat the client device can use.

In an embodiment, the service also has access to its own client devicedatabase where the service stores information regarding the status ofall the client devices in communication with the service. The clientdatabase includes, among other information, the multimedia content thatthe client devices have recorded. The service can include in the searchresults that concern broadband content, multimedia content that isavailable to download from other client devices. A client device canrequest downloads of multimedia content from multiple client devices andreceive segments of the multimedia content from those client devices.

The client device receives the search results from the service. Theclient device processes the search results and displays the searchresults in a list to the user. The service creates the user interfacescreen for the client device to display. Each time a client device sendsa search request to the service, the service formats the data receivedfrom the searches of the databases into a user interface screen that ispresentable by the client device. The client device receives the userinterface screen and displays the screen as formatted by the service.The screen information instructs the client device on how it shouldrespond to any key presses by the user.

2.0 STRUCTURAL OVERVIEW

FIG. 1A illustrates an example system in order to perform progressivesearch, according to an embodiment. The system contains at least oneclient device such as DVR 102 which is communicatively coupled tonetwork 105 through any communication interface, such as an Ethernetinterface or wireless communications port. The functionality of a DVR istypified in U.S. Pat. No. 6,233.389, which is owned by the Assignee andis hereby incorporated by reference. The system also includes serviceprovider 104, content provider 106, personal computer 108 and portabledevice 110.

Personal computer 108 may be a personal computing device, such as adesktop computer or laptop computer, and is also coupled to network 105through any communications interface, including wireless. Portabledevice 110 may be any handheld computing device, cellular phone,portable media player, or any other portable device capable ofdisplaying multimedia content and may be coupled to network 105 throughany communications interface, including wireless. DVR 102, personalcomputer 108, and portable device 110 each communicate with serviceprovider 104 through network 105. In another embodiment, DVR 102,personal computer 108, and portable device 110 each communicate withcontent provider 110 through network 105.

Network 105 may be implemented by any medium or mechanism that providesfor the exchange of data between devices in the communication system.Examples of network 105 include, without limitation, a network such as aLocal Area Network (LAN), Wide Area Network (WAN), the Internet, one ormore terrestrial, satellite or wireless links, etc. Alternatively oradditionally, any number of devices connected to network 105 may also bedirectly connected to each other through a communications link.

In one embodiment, content provider 106 provides broadcast programcontent to DVR 102 via cable, satellite, terrestrial communication, orother transmission method. Broadcast program content may include anymultimedia content such as: audio, image, or video content. In anotherembodiment, content provider 106 provides multimedia content, such asany downloadable content, through network 105 to DVR 102, personalcomputer 108, or portable device 110.

In one embodiment, DVR 102 communicates with service provider 104, whichprovides program guide data, graphical resources (such as fonts,pictures, etc.), service information, software, advertisements, eventidentification data, and other forms of data enable DVR 102 to operateindependently of service provider 104 to satisfy user interests. Inanother embodiment, DVR 102, personal computer 108, and portable device110 can communicate with each other to transfer content, metadata, orany other data through network 105, communication connection, or anylocal network.

In another embodiment, content provider 106 may provide, to serviceprovider 104, content data or any metadata, including promotional data,icons, web data, and other information. Service provider 104 may theninterpret the metadata and provide the content data metadata to DVR 102,personal computer 108, or portable device 110.

Referring to FIG. 1B, in an embodiment, DVR 102 generally comprises aplurality of components, signified by Signal Converter 154, that arenecessary to digitize an analog television signal and convert it into adigital data stream or accept a digital data stream. An example of theinternal structure and operation of a DVR is further described in U.S.Pat. No. 6,233,389.

DVR 102 receives broadcast signals from an antenna, from a cable TVsystem, satellite receiver, etc., via input 152A. Input 152A maycomprise a plurality of tuning modules that allow a plurality of signalsto be received and recorded simultaneously. For example, a TV inputstream received by input 152A may take the form of a National TelevisionStandards Committee (NTSC) compliant signal or a PAL compliant broadcastsignal. For another example, a TV input stream received by input 152Amay take a digital form such as a Digital Satellite System (DSS)compliant signal, a Digital Broadcast Services (DBS) compliant signal,or an Advanced Television Standards Committee (ATSC) compliant signal.DBS, DSS, and ATSC are based on standards called Moving Pictures ExpertsGroup 2 (MPEG-2) and MPEG-2 Transport. MPEG-2 Transport is a standardfor formatting the digital data stream from the TV source transmitter sothat a TV receiver can disassemble the input stream to find programs inthe multiplexed signal.

An MPEG-2 transport multiplex supports multiple programs in the samebroadcast channel with multiple video and audio feeds and private data.Input 152A tunes to a particular program in a channel, extracts aspecified MPEG stream from the channel, and feeds the MPEG stream to therest of the system. Analog TV signals are encoded into a similar MPEGformat using separate video and audio encoders, such that the remainderof the system is unaware of how the signal was obtained. Information maybe modulated into the vertical blanking interval (VBI) of the analog TVsignal in a number of standard ways; for example, the North AmericanBroadcast Teletext Standard (NABTS) may be used to modulate informationonto certain lines of an NTSC signal, which the FCC mandates the use ofa certain other line for closed caption (CC) and extended data services(EDS). Such signals are decoded by input 152A and passed to the othermodules as if the signals had been delivered via an MPEG-2 private datachannel.

Recording Module 160 records the incoming data stream by storing thedigital data stream on at least one storage facility, signified byStorage 164A/164B that is designed to retain segments of the digitaldata stream. Storage 164A/164B may be one or more non-volatile storagedevices (e.g., hard disk, solid state drive, USB external hard drive,USB external memory stick, USB external solid state drive, networkaccessible storage device, etc.) that are internal 164A and/or external164B. A Signal Converter 154 retrieves segments of the data stream,convert the data stream into an analog signal, and then modulate thesignal onto a RF carrier, via Output 152B, through which the signal isdelivered to a standard TV set. Output 152B may alternatively deliver adigital signal to a TV set or video monitor. For example, DVR 102 mayutilize a Digital Visual Interface port (DVI) for sending digitalsignals to a TV via a DVI cable.

DVR 102 also includes a Communication Interface 162, through which theDVR 102 communicates with Network 105 via Ethernet, wireless network,modem, or other communications standard. Further, DVR 102 may beintegrated into a TV system such that the components described above arehoused in a TV set capable of performing the functions of each componentof DVR 102.

In another embodiment, DVR 102 generally comprises a plurality ofcomponents necessary to receive, record, store, transfer and playbackdigital data signals from a plurality of sources, such as a PC, a DVR, aservice provider, or content server. DVR 102 can transfer digital datasignals to another DVR or PC. DVR 102 may encode or decode digitalsignals via Encoder 156A and Decoder 156B into a plurality of formatsfor playback, storage or transfer. According to one embodiment of theinvention, encoder 156A produces MPEG streams. According to anotherembodiment of the invention, encoder 156A produces streams that areencoded using a different codec. Decoder 156B decodes the streamsencoded by encoder 156A or streams that are stored in the format inwhich the streams were received using an appropriate decoder. DVR 102can also encrypt or decrypt digital data signals usingEncryptor/Decryptor 158 for storage, transfer or playback of the digitaldata signals.

In one embodiment, DVR 102 communicates with Service Provider 104, whichprovides program guide data, graphical resources such as brand icons andpictures, service information, software programs, advertisements, andother forms of data that enable DVR 102 to operate independently of theService Provider 104 to perform autonomous recording functions.Communication between DVR 102 and Service Provider 104 utilizes a securedistribution architecture to transfer data between the DVR 102 and theService Provider 104 such that both the service data and the user'sprivacy are protected.

3.0 EXAMPLE TECHNIQUES AND PROCESSES

3.1 ENTERING SWIVEL SEARCH FROM SEARCH

In an embodiment, a user may enter the swivel search system by firstperforming a search for any type of term. The user begins a search asthe client device (e.g., DVR 102) displays a main menu. An example isillustrated in FIG. 2. The DVR may cause such a menu (and other menus,screens, dialogs, and user interfaces described herein) to be displayedby sending signals to a television set, monitor, or any other devicecapable of visual display. A user may use a remote control (which isconfigured to operate with the DVR) to select, from among the severalmenu items, a particular menu item in which the user is interested. Asshown in FIG. 2, among the other user-selectable options shown in themain menu 200 is a particular item whose selection causes the DVR toinitiate a process for entering an area to perform searches. In FIG. 2,this particular menu item is labeled, “Find Programs” 202, however, thislabel may vary from implementation to implementation.

Once the user enters the “Find Programs” area, FIG. 3 displays anexample of the menu options 300 that may occur, according to anembodiment. A particular choice among the menu options is “UniversalSwivel Search,” 302 though this label may vary from implementation toimplementation. Other labels may include, but is not limited to “SwivelSearch” and “Progressive Search.” Selecting the item “Universal SwivelSearch” 302 sends the user to the screen illustrated in FIG. 4.

In an embodiment, the swivel search system is initiated after a searchterm is entered by the user. A user commences a search by submittingalphanumeric characters or symbols that correspond to a particularsearch term that the user is interested. FIG. 4 illustrates an exampleof a DVR-presented screen that allows for the search of a word or phrasethat corresponds to program data. In an embodiment, program datacomprises program titles, people, and tags. In another embodiment, othercategories of search criteria are included or excluded based upon theservices offered by the service or its partners and the availability ofsearchable data. As used herein, a “program title” refers to, but is notlimited to, the title of a television show, movie, downloadable content,or any other viewable content available, to the user. As used herein,the term, “people,” may be used to refer to any individual or characterthat may appear, or is involved in the production, of any availablecontent. These may include, but is not limited to, actors, writers,directors, character names, or producers. An alternative term that mayalso be used in place of people may be “credits.” The term, “tags,” isfurther described in section 3.3.1 of this Application.

In another embodiment, a search may be expanded to include or excludeany related data or categories of data for the content that is searched.For example, a search may be made for content with the actor “MattDamon” but within those results, exclude content that also contains anyreference to “Ben Affleck.”

In an embodiment, a user initiates the swivel search system byperforming a search by program titles, people, or tags. To initiate thesearch for program titles, people, or tags, the user enters alphanumericcharacters or symbols for the program title, person, or tag that theuser wishes to query in search box 400. In an embodiment, asalphanumeric characters or symbols are entered in the search box, searchresults appear that conform to the alphanumeric characters or symbolsentered, as shown in FIG. 5. For example, if the user enters thealphanumeric characters “G” and “A,” 500 then the search applicationwould return results that include the tag “GAMBLING,” 502 and the actors“Tim Gamble” 504, and “Michael Gambon” 506. As more alphanumericcharacters are entered, the results of the search are correspondinglynarrowed. For example, the alphanumeric characters “M”, “B,” and “L”might be added to the alphanumeric characters “GA” that were enteredpreviously. This makes the search query term “GAMBL.” Under thiscircumstance, the tag “GAMBLING” remains, as does the actor “TimGamble.” However, the actor “Michael Gambon” would be removed becausethe actor's last name, “Gambon” does not contain the search queryalphanumeric characters “GAMBL.”

In an embodiment, the results displayed do not begin with thealphanumeric characters that are entered by the user, but merely containthe alphanumeric characters. For example, if a user enters thealphanumeric characters “ERI”, then in addition to the result “ERINBROCKOVICH”, that begins with “ERI,” other results that merely containthe alphanumeric characters “ERI” would also appear. For example,another search result might be “AMERICAN IDOL.”

In another embodiment, rather than displaying search results thatconform to all of the possible categories (people, program, and tags), auser selects a particular category in which to display possible results.For example, a user might limit search results to only people. Thus,when search results that conform to the alphanumeric characters of thesearch query that are entered by the user are displayed, the resultsthat appear conform to the category “people” and to the alphanumericcharacters entered for the search query. In other embodiments, multiplecategories (“people” and “program titles”) may be selected by the userfor display.

In yet another embodiment, the search may be limited to exact matches.Under this circumstance, no search results that conform to the searchquery are shown as the search query is entered. Rather, once the userhas entered the alphanumeric characters for the entire query, the userselects a submit button, or any other such signal to indicate that thesearch term is to be submitted, and results that conform to the searchquery are then shown. This may speed searches as results are not updatedupon the entry of each alphanumeric character of the search.

In an embodiment, if a particular tag is selected, then programmingcontent or other searchable terms that relate to the particular tag arereturned as results. For example, if the tag “GAMBLING” 502 is selected,then programming content or other searchable terms that relate to thetag “GAMBLING” 502 are returned as results. The results are shown inFIG. 6 as element 600. Among the results 600 are the movies “CasinoRoyale” 602 and “Rounders” 604 that are shown in the list of relatedcontent on the left area of the screen. Other results may appear thatare not strictly content. For example, an actor might appear that iswell-known for appearing in movies related to gambling such as “GeorgeClooney.” In another example, other tags might appear that relate to thetag “Gambling” such as “Poker,” “Blackjack,” or “Las Vegas.” In yetanother embodiment, downloads might appear that relate to the tag“Gambling” such as a downloadable game in which the user plays casinogames.

In an embodiment, as the cursor is placed by a user over a particularprogramming content, then information and terms about the content may beshown on the column at the right area of the screen. This is shown inFIG. 6 as the cursor is placed over the content movie “Casino Royale.”The right area of the screen displays information and terms about themovie “Casino Royale” 606.

In an embodiment, the user interface is a two column format in which aselection may be highlighted on the left column, and then options orterms that appear based upon that selection appear on the right column.As used herein, the right column or right area of the screen may bereferred to as the “flyout” area. This occurs because a selection ismade and options “fly out” to the right in the “flyout” area. However,any term may be used that unambiguously describes the right area of thescreen. For example, when the cursor is over “Casino Royale,” on theleft column, then information about the movie “Casino Royale” 606 isshown on the right column, or “flyout” area. The structure of the userinterface may vary from implementation to implementation. For example,as data related to the content might be displayed in the left column andcontent related to the selected data might be displayed in the rightcolumn.

In FIG. 6, the information that appears in the right column about thecontent “Casino Royale” is a short synopsis of the plot 608 and theprimary actors 610. In an embodiment, additional options or actions maybe provided by the service rather than just related information. Forexample, in FIG. 6, an option to “See more information” 612 about thecontent is listed as well as an option to “Record this program” 614.Selecting the option “See more information” may bring up more detailedinformation than merely the short plot synopsis and primary actors. Forexample, a more complete list of the movie's credits, reviews of themovie, short media clips, trailers, downloads, or links to purchase theDVD and soundtrack might be included within the details screen.

In an embodiment, the options and actions provided vary based upon thedata available to the service provider. For example, when “Record thisprogram” is selected by the user, the DVR schedules the next availableshowing of the content for recording. A user may request that the DVRrecord a showing other than the next one available based upon otherfactors, such as a later showing being broadcast in high definition orwith fewer or no commercial interruptions. In the case where the contentis a series, the next episode that airs is scheduled to be recorded. Theuser may override that action and request that a different episode orhigh definition broadcast instead be recorded. In another embodiment,the user may have conflicts because other programs are set to berecorded at the same time that the user would like to record a secondprogram. The user or the service provider may select another showing ofthe program to record in order to resolve the conflict.

According to an embodiment, if the cursor is moved to anotherprogramming content, then information, such as, but not limited to, theplot, and the primary actors for that particular programming content areshown. This is shown in FIG. 7. FIG. 7 illustrates this as the cursorwithin the swivel search is moved from “Casino Royale” 702 to “Rounders”704. The information shown in the right column, or “flyout” area nowdisplays information related to the movie “Rounders.”

In an embodiment, when a programming content is selected or clicked by auser when with the cursor superimposed on the programming content, thecursor moves from the left column to one of the information terms in theright column. In another embodiment, the programming content may also beselected by pressing a right arrow key from the remote in order todirect the cursor to move to the informational terms in the rightcolumn. With the cursor now in the right column, any of the data termsrelated to the selected content may be selected. For example, in FIG. 8,the movie “Rounders” might be selected. Upon selection, the cursor movesfrom the left column 802 to the right column 804 of the screen thatcontains the programming or informational data related to the movie“Rounders.” The programming data may include, but is not limited to,actors, character names, directors, writers, plot synopsis, or any otherinformation about that particular programming content. The location ofthe programming data and the programming content on the screen may varyfrom implementation to implementation with content on the right columnand programming and related informational data on the left column. Theuser may select any of the actors 806 to view programming contentassociated with that particular actor and “progress” or “swivel” to thatinformation.

In an embodiment, when a user selects any of the program data orinformational terms related to the content, content and terms thatrelate to the selected term appears. As shown in FIG. 9, if the actor,Matt Damon, is selected, then data and terms that relate to the actor isshown. This related data may include, but is not limited to, a snapshotof the actor 902, his biography 904, and other content 906 that theactor appeared. This is shown on the left column within FIG. 9. Relateddata may also include character names of his roles, a short video clipof the actor, or playing any other type of media that features theactor. Any of the content displayed may be selected to “progress” or“swivel” to that content, and more selections may be subsequently made.

3.2 ENTERING SWIVEL SEARCH FROM VIEWED CONTENT

In an embodiment, swivel search may be initiated as the user is watchingpreviously recorded content. In order to begin watching previouslyrecorded content, the user would select the “Now Playing List” 1002 fromthe initial menu as shown in FIG. 10. Selecting the “Now Playing List”takes the user to the screen as shown in FIG. 11. The “Now Playing List”displays content 1102 that has been previously recorded or downloadedand is now available to be viewed by the user. In this example, the userselects “How I Met Your Mother” 1104.

Entering swivel search while watching previously recorded content allowsthe user to enter the swivel search system using the recorded content asthe initial point of the search. For example, if a user were watchingthe recorded television show “How I Met Your Mother”, and entered theswivel search system, then “How I Met Your Mother,” would be treated asthe first selected term of the search. In another embodiment, theprogram data swivel search system is initiated as the user is watchinglive television content. Similar to viewing recorded content, theinitial point of the search would be the content that is being viewed bythe user. For example, if a user is watching the television show “ER”,and entered the swivel search system, then “ER,” would be treated as thefirst selected term of the search. In another embodiment, the userenters swivel search based upon previously downloaded content. In yetanother embodiment, the user enters swivel search based on contentsuggested by friends. Any content that may be selected by a user may beused as a starting point to enter swivel search.

The process is shown beginning in FIG. 12. The user initiates theinformation screen of the television show, “How I Met Your Mother.” Thetitle of the show 1202 and a short synopsis of the plot 1204 appear.This screen also contains recording options 1206 and information aboutthe recording 1208.

As shown in FIG. 13, “More options” 1302 allows for a selection of“swivel search” 1304. This is used to enter the swivel search system.The label of the selection may vary from implementation toimplementation in order to enter swivel search. In another embodiment, aselection for “swivel search” appears on the informational screen of thetelevision program, bypassing the need to enter the “More options”screen. Once the selection is made to enter swivel search, a screenappears as shown in FIG. 14, in which to select program data and otheroptions that relate to the television program.

Entering swivel search while viewing a particular content pre-populatesthe swivel search system with that particular content. The user does notneed to enter the program title as he or she did by entering the swivelsearch system from a search screen. In an embodiment, credits such asthe primary actors and guest stars as well as upcoming showings andavailable downloads of the show are shown. Other credits or programmingoptions may be implemented as well and this embodiment is not limited toonly those credits or programming options displayed. The credits 1402and programming options 1404 may be seen on the left column in FIG. 14.The results are displayed on the right column 1406 when the cursor isplaced over a particular option. The placement and display ofprogramming data and options and results may vary from implementation toimplementation.

3.3 OPTIONS IN SWIVEL SEARCH

When “Upcoming showings” 1502 is selected as shown in FIG. 15, thefuture airings of the television show 1504 are shown according to theschedule made available by a content provider or a third partyorganization that aggregates such data. In an embodiment, the upcomingshowings are limited to what is being aired within the next fourteendays. In another embodiment, upcoming showings are limited to adifferent time period. In yet another embodiment, the upcoming showingsare not limited to any specified time period. In an embodiment, the timeperiod may be specified by the user. In another embodiment, the timeperiod may be specified by the service provider. In this instance, ifcontent selected is not scheduled to be shown, then a “wishlist” is madeof that selected content. As used herein, the term “wishlist” refers tothe process whereby a selection of a particular content by the user isstored and the selection is recorded should that particular content beshown at a future, as yet undetermined date, or that particular contentlater becomes available by download.

In an embodiment, content that the user may select includes broadbandvideo and other content that is downloadable. Thus podcasts, videos fromwebsites on the Internet, and other content from the Internet may beincluded as content from which the user may select. Thus, the content isnot limited to traditional broadcast television sources such as cable orsatellite. If “Available Downloads” 1602 is selected as shown in FIG.16, then available downloads 1604 of the show are shown in the rightcolumn. Any specific placements of content and selected options may varyfrom implementation to implementation.

In another embodiment, “Available downloads” are included with theresults of content that may be recorded. For example, the future airingsof the show may be displayed alongside episodes of the show that mightalso be downloaded. Thus, separate screens, one screen for airings thatmay be recorded and another screen for downloads, are no longerrequired. In an embodiment, selections that may be recorded aredistinguished from selections that may be downloaded by a graphicalindicator located in a proximity to the selection. A graphical indicatormay be displayed for each selection that may be recorded and a graphicalindicator may be displayed for each selection that may be downloaded. Inanother embodiment, only selections that may be recorded have agraphical indicator. In yet another embodiment, only selections that maybe downloaded have a graphical indicator. The graphical indicator thatindicates whether a selection may be downloaded might be a networksymbol or any other type of symbol that may be used to indicate adownload. The graphical indicator that indicates whether a selection maybe recorded might be a recording symbol or any other type of symbol thatmay be used to indicate a recording. The actual graphical indicatorsused may vary from implementation to implementation.

In an embodiment, any of the available downloads 1604 may be selectedand purchased by the user. In an embodiment, before the purchase iscompleted, there may be a purchase confirmation screen or box in orderto confirm that the user does wish to purchase the content. The purchasescreen or box may include, but is not limited to, the purchase price ofthe download, the length of time to download the content, and ascheduler should the user want to download the content at a later time.The download of the show may commence over a broadband connection forlater viewing. In an embodiment, an alert informs the user that thedownload has been completed. In another embodiment, the selectedavailable download is sent to the DVR by way of cable, over-the-air,satellite, infrared or any other known means of transmission.Downloadable content is made available by the service provider, thecontent provider, or third party partners that make availabledownloadable content.

In an embodiment, authorization to complete a purchase is required.Authorization may be performed using a variety of methods. For example,a password might be required in order to proceed with the purchase.Other techniques may be used to authorize the purchase and toauthenticate the user. For example, other techniques may include, butare not limited to, voice authorization, finger scanning, entering asecurity code or any other technique where a user is authenticated sothat a purchase may be authorized.

In another embodiment, a selection to download a particular content maynot be available by one of the partners or the service provider, andinstead, the content is searched for on other client DVRs within thenetwork of the service provider. This may also be called peer-to-peerdownloading. Peer-to-peer downloading is another option that may beperformed prior to placing the content on the wishlist of the user. EachDVRs owner may elect to opt-in or not opt-in in order to allow other DVRowners to search and download content from his DVR. Other considerationsmay be determined about whether a DVR may participate in peer to peerdownloading. For example, the service provider might only allow DVRs toparticipate if the DVR has a broadband connection and has a connectionspeed above a particular threshold. Other considerations may limitdownloads to DVRs that are located in a particular service or geographicarea or that subscribe to a particular premium service.

In an embodiment, once a particular content is determined to beunavailable, either through broadcast or downloading, the serviceprovider searches other DVRs for the particular content. In anembodiment, if the particular content is found on other DVRs, theservice provider provides a list of DVRs on which the particular contentmay be downloaded. The user who wishes to download the content may thenselect which DVR he or she wishes to download the content. In anotherembodiment, if the particular content is found on other DVRs, theservice provider initiates a download from the DVR that stores thecontent to the DVR of the user who whishes to watch the content. In anembodiment, DVRs share authentication information prior to the start ofany download.

As shown in FIG. 17, another option that may be selected in the swivelsearch system is “If You Like This” 1702. In an embodiment, should “IfYou Like This” be selected, then content similar to the current programselected are displayed. For “How I Met Your Mother”, six othertelevision series 1704 appear on the right column that are determined tobe similar. “Friends” 1706 and “My Name is Earl” 1708 are an example oftwo of these shows. In an embodiment, the shows that are similar arebased on aggregate viewing data from users. Data is aggregated by theservice provider from users watching a particular show. If there is acorrelation to between viewing the particular show and anothertelevision show, then the second television show is included as similarshows. In another embodiment, similar shows may be based upon editorialcontent provided from the service provider, the content provider, orsome other third party. Any other criteria may be used in order torelate a show or content to another show or content. These may include,but are not limited to, whether the show is categorized in a particulargenre, the time period of the show, or the general subject of the show.

In an embodiment, the director of a show may also be selected like anyother credit, or program data. As shown in FIG. 18, the director, DavidE. Kelly 1802, is selected. Similar to how content related to the datais shown for actors, content 1804 is shown for the director. In thisexample, other shows directed by David E. Kelly are shown on the rightcolumn. “Boston Legal” 1806 and “Chicago Hope” 1808 are two of theseshows. Selections may be made of these shows and then the user would“progress” or “swivel” to the information about that selected show. Fromthere, the user may “progress” or “swivel” to other related shows orprogramming data.

3.3.1 TAGS

Tags 1902 are also shown as an option that may be selected in theprogram data swivel search system as shown in FIG. 19 on the leftcolumn. For the television series “Doogie Howser, M.D.”, the tags“coming of age,” 1904 “doctor,” 1906 “medical,” 1908 and “prodigy” 1910are shown. When a tag is selected, content 1912 related to that tagappear in the right column. In this example, for the tag “doctor” 1906,the television series “ER” 1914, “Grey's Anatomy” 1916 and “Scrubs” 1918appear because these shows relate to the tag and are scheduled to beshown in the near future.

Tags, as used herein, refer to a set of words, pictures or other mediaused to link various pieces of content together. Examples of tags maybe, but are not limited to, locations in which the content is set,genres to which the content belongs, or the subject matter associatedwith the content. If the term “New York” is searched, results returnedmay include the television series “Friends”, and the movies “Gangs ofNew York” and “Ghostbusters”. The results are returned because eachselection is set in the city of New York. In another example, the term“marriage” is searched. This search returns content that are associatedwith “marriage”. Some results may include the television series “WeddingStory,” certain episodes of television series in which marriage occurssuch as “Friends,” and the movie “The Runaway Bride”.

Tags linked to content may include any association with words. Someexamples of tags are “singing,” “reality TV,” “fashion,” “terrorist,”“crime,” and “roommate.” Tags may be added or changed over time. Tagsare also not limited to words, but may consist of a picture associatedwith content (an example is the symbol that identifies singing star,Prince), or other media such as sounds or music. For example, aselection of new age music may be associated with a show on spiritualityand a selection of heavy metal music may be associated with a televisionshow on skateboarding.

Tagging may be performed on either broadcast content or downloadablecontent. Broadcast content includes, but is not limited to, content fromover-the-air antennas, satellite, and cable. Downloadable contentincludes, but is not limited to, broadband video, podcasts and otherforms of audio, images, and RSS feeds.

In an embodiment, tags may be created by the service provider. Forexample, the service provider might wish to point out certain subjectmatter available in a television program. In this way, if a userrepeatedly views a certain video segment that relates to a certainsubject matter, then the service provides associations to other videosegments that relate to the certain subject matter. The service providermay also provide tags that originate from the content provider.

In another embodiment, the content provider creates tags for the contentprovider's own programming. In this circumstance, the tags are notprovided first to the service provider for dissemination for additionaleditorial. This allows the content provider to have the assurance thattags provided to users are accurate and reflect the intention of thecontent provider. The tags may then be used by the content provider toensure that users may be linked to other shows that contain similarcontent or appeal to a similar demographic of users.

According to another embodiment, multimedia devices such as DVRs, PCsand handheld computing devices are used to create tags for videoprograms, herein referred to as “community tagging.” Using a controlinterface such as a remote control or a keyboard, when a user is viewinga video program, the user enters possible terms that associate thecontent to the tag. For example, the user might use the controlinterface to mark a program segment, or alternatively to mark an eventwithin the video program. For instance, when viewing a sporting eventsuch as a football game, the user signals via remote control when anexciting play occurs. The user may enter the term “exciting” and the tagis then associated with that program. Community tagging may becompletely open or subject to the editorial of the service provider inorder to maintain order. Also, community tagging may be aggregated sothat only the most common actions are selected and then the tags may bedisseminated to the network of users.

In an embodiment, data that may be selected is not limited to words usedin credits and tags, but may include other media such as video,pictures, or sounds. Examples of pictures include, but are not limitedto, headshots of actors, movie posters, or still frames from shows ormovies. Sounds may include, but are not limited to, theme music from ashow, music from a motion picture, or an actor's voice.

3.4 PRIVACY IN SWIVEL SEARCH

In an embodiment, privacy is maintained for the user by letting the userselect whether information that he or she enters is saved and recordedby the service provider. If a user elects to have all informationrecorded by the service provider, then all functionality of the swivelsearch is available to the user. If a user selects to not opt-in forprivacy, then the user may continue to use swivel search but not allfunctionality may be available. For example, particular informationmight be needed to be saved in order to provide a swivel search feature.Under this circumstance, the swivel search feature that needs saved datawould not be available to the user who does not opt-in. A user may electto opt-in to certain information that allows access to some features ofswivel search but not allow access to other features of swivel search.

A flowchart for privacy selection according to an embodiment is shown inFIG. 20. A user enters the swivel search system at a launch point instep 2001. The system determines whether the user is already opted intothe privacy policy in step 2003. If the user has already elected toopt-in, then the system allows the user to access the swivel searchsystem with full functionality, or the opted-in system of 2040. Forexample, the user may wish to limit his search based upon “channels youreceive.” Channel reception information is considered privateinformation and thus the user must opt-in in order to allow the searchapplication to process with full functionality.

If the user has not already elected to opt-in, then the systemdetermines whether it is the user's first time to launch the applicationas seen in 2005. If this is the user's first time launching theapplication, then the system displays a welcome screen as shown in step2009. On the welcome screen, the user may elect to 1) opt-in, 2) notanswer the question at this time, or 3) never ask again. If the userselects “never ask again,” then the user is presented with a screen thatstates that the system has limited functionality at step 2011. At step2011, the user may select to continue onto the system with limitedfunctionality or to opt-in to the privacy policy. If the user elects tocontinue, then the user is placed in the swivel search system withoutfull functionality, or the limited system of 2030 and a “never askagain” flag is attached to the user. The “never ask again” flag alertsthe system to not query the user to opt-in to provide privateinformation. If the user elects to opt-in, the user is taken to a screenwith legal text 2015 explaining the user's choice and to confirm theirelection to opt-in. Otherwise, the user may navigate back to theprevious screen.

If the user elects to opt-in from the welcome screen, then the systemnavigates the user to a confirmation screen with legal text 2015. At theconfirmation screen, the user still has the ability to not accept toopt-in to provide private information. If the user selects “not now,”then the system navigates the user to a screen describing thelimitations of not opting in and given the choice to continue or opt-inas shown in step 2013. If the user elects to opt-in, the user is takento the confirmation screen with legal text 2015 where they eitherconfirm their choice to opt-in or may go back to the previous screen. Ifthe user selects continue, then the system navigates the user to theswivel search system with limited functionality 2030. If the user electsto opt-in on the confirmation screen, then the user enters a password instep 2019. If the password is correct as shown in step 2021, then theopt-in is confirmed 2023 and then the swivel search system is launchedwith no limitations 2040.

If this is not the first time that the user is launching the swivelsearch system as shown in step 2005, then the system determines whetherthe “never ask again” flag is associated with the user in step 2007. Ifthe flag is not present, then the system displays a limitations screenthat describes the limitations of the search system when not opting inas shown in step 2013. If the “never ask again” flag is present, thenthe system navigates the user to the search system with limitedfunctionality in step 2030.

In the legal text screen as shown in step 2015, options may be placed toindicate what particular information the user wishes to share with theswivel search system. In an embodiment, options may include, but are notlimited to, the “channels received.” The options of the particularinformation to include may vary based upon the geographical location ofthe user, the equipment that is being used, or the methods in which theuser communicates with the service provider (broadband vs. phone).

In an embodiment, the user enters the privacy selection flowchart withthe legal text screen in step 2015 while the user is using the swivelsearch system. This situation occurs if the user has already entered theswivel search system and attempts to retrieve data that is not allowedbecause the user has failed to opt-in to the necessary privacyselections.

3.5 ADDITIONAL FEATURES IN SWIVEL SEARCH

In an embodiment, the swivel search system may be initiated from aprogram details screen for content that is scheduled to be broadcast inthe future. For example, a search is performed while the user has notselected to use the swivel search system. The result of the search is aprogram that has not yet been broadcast. Under this circumstance, whenthe user selects the information screen of the program that has not yetbeen broadcast, a selectable option in the information screen, or on ascreen that may be navigated from the information screen, allows theuser to enter the swivel search system with the content to be broadcastin the future as the selected content. In an embodiment, the swivelsearch system may be initiated from content that is downloaded. Thus,the swivel search system may be initiated when viewing recorded content,live content, downloaded content, and also when viewing information oncontent that is scheduled to be broadcast in the future.

In an embodiment, users are allowed to add ratings to any and allcontent and related terms and data in the swivel search system. Forexample, ratings may be added for downloaded content as thumbs up if theuser likes the content, or thumbs down if the user does not like thecontent. Users may enter the ratings using the remote interface deviceof the client DVR. Other users may view the ratings submitted by anaggregation of other users, or select a particular user, and makecontent choices partially based upon those ratings.

In another embodiment, users may rate any program data within swivelsearch. Users may rate the associations of data themselves or any otherrelation within swivel search. This allows the service provider toimprove the quality of relationships and remove associations that arepoorly rated. In addition, users may rate tags or any other termassociated with content. Users may also rate the ratings submitted byother users.

In another embodiment, ratings are determined based upon collaborativedata. The ratings may be for any content. In this circumstance, contentthat is viewed is aggregated across a cross section of total viewershipin order to determine associations between content, including contentfrom satellite, cable, or downloading.

In an embodiment, a user may select bookmarking a particular show. Theuse of bookmarks allows a user to reference a particular show orparticular point in a particular show for later retrieval. Furtherdetails for bookmarking may be found in U.S. Pat. No. 6,868,225 B1 thatis owned by the Assignee, and is incorporated by reference for allpurposes herein.

In an embodiment, a user may find a particular show of interest inswivel search and send information about the show to a friend. Sendinginformation to a friend or bookmarking may be an additional action thatmay be accomplished by a user, in addition to recording and downloadinga particular show. The user may send this information to the friend by avariety of methods such as email, a message, or an instant message via achat protocol. More details about sending information via instantmessaging may be found in U.S. patent application Ser. No. 10/168,782that is owned by Assignee and is incorporated by reference for allpurposes herein. In another embodiment, a user may record a particularshow and wish to share the particular show to a friend. The user mayupload the show to the friend's DVR unit or may transfer the show usingany type of network. Further information regarding sharing personalmedia may be found in U.S. patent application Ser. No. 10/742,581, thatis owned by Assignee, and is incorporated by reference for all purposesherein.

In an embodiment, the user interface is enhanced to includeadvertisements or other promotions that may be related to the search ofcontent made by the user. The advertisements or promotions may beinitiated by the service provider, the content provider, or a thirdparty who wishes to offer users related goods or services related to thecontent or search that the user performs.

In an embodiment, the swivel search system user interface is enhanced touse the features available with high definition television. For example,the interface may have expanded information because more screen space isavailable for the interface. In addition, the program data multimediafeatures may be enhanced to take advantage of the increased clarity ofthe pictures and thus more high quality pictures, graphics, and mediaare presented to the user. Other features and media may also be enhancedto take advantage of the high definition screen, such as an additionalcolumn, to make the user interface a three-column format.

In an embodiment, the swivel search system user interface is able to beused on any type of client, such as a website, set-top box, cell phone,handheld device, laptop, PC, etc. In addition to being able to performany swivel search on a client DVR, the swivel search system isaccessible on a website that users employ to perform recordings andobtain content. In this implementation, users may also rate the contentand view any content that is available on the website. This may includedownloaded content or content on the client DVR that may be uploaded anddisplayed on the client.

3.6 UNIFIED SEARCHING OF BROADBAND AND BROADCAST MULTIMEDIA

CONTENT

According to one embodiment, an advanced DVR (e.g., DVR 102) allows auser to search for multimedia material across both broadcast andbroadband sources. The user forms search criteria (by direct input orselecting a menu item) and instructs the DVR to perform the requestedsearch. The user typically does not have to be concerned about whetherthe search is for broadcast content or whether the search is forbroadband content. The embodiment automatically performs a plurality ofsearches across dissimilar sources using the user's search criteria.Once the user is presented with a listing of available broadcast andbroadband content that matches his search, the user can peruse the listof available content in order to obtain more information for particularcontent or to schedule recordings or downloads of particular content.The ability to search both broadcast and broadband sources formultimedia content is unique to the embodiment.

FIG. 21 illustrates a service 2104 that receives search requests fromclient systems and performs an integrated search across databasescontaining informational data for broadcast content and broadbandcontent using the received search criteria. The structures presented inFIG. 21 may also be employed to implement swivel search. The service2104 can be a server implementing searches across databases 2101 and2103. The service 2104 can also consist of a plurality of Web ServiceApplication Program Interfaces (APIs) that service client requests. Theservice 2104 may be owned or operated by a service provider, thirdparty, etc. Owners of client devices such as client device 2105 arecharged a fee by the service provider, third party, etc., for access tothe database search service, content recording scheduling, contentdownload service, etc. A user enters search criteria on a client device2105. The client device 2105 can be a DVR, set-top box, cell phone,handheld device, laptop, PC, etc., for example.

The client device 2105 formulates a search request given the user'sinput. FIG. 5 illustrates a screen shot of an entry screen 550 where theuser enters information such as a keyword, actor name, director name,producer name, program title, etc. As the user enters each character onthe virtual keypad 552 in the search, the client device 2105 displaysthe entered characters in an entry field 500. The client device 2105formulates a search request using the entered characters. The clientdevice 2104 sends the search request to the service 2104.

The service 2104 receives the search request from the client device2105. The service 2104 formulates a query for each database 2101, 2103.The databases consist of at least one broadband database 2101 and atleast one broadcast database 2103. The broadband database 2101 containsdata from partners of the service provider such as: Amazon.com,RocketBoom, dLife®, The New York Times®, and CNET®. Broadband databasesmay exist at each partner's server. The service 2104 then queries eachpartner's database with a compatible query that the service 2104 createsusing information regarding the type of database queries each partner'sdatabase requires. In an embodiment, the partners pay the serviceprovider a fee for placing data in the database or for having theirdatabase searched by the service 2104. For example, partners may pay afixed fee or a fee based on the number of times that the service 2104queries the partner's database. The broadband database(s) makes itpossible for the partners' products and services to be displayed tousers. Data in the broadband database(s) consists of links to multimediacontent that are available for download from the partners. The data alsoincludes information describing the multimedia content such as: programdescription, program synopsis, program rating, actors, directors,producers, program title, pricing, etc., as well as search data tags(described below).

The broadcast database 2103 contains data from electronic program guide(EPG) providers such as Tribune Media Services®. The EPG data describesprograms that are available from many different broadcasters andservices such as: DirecTV®, Comcast®, CableVision®, etc. The EPG datacontains information describing the program such as the channel that theprogram is available on, program description, program synopsis, programrating, actors, directors, producers, program title, etc., as well assearch data tags (described below). EPG data is typically updatedperiodically and typically covers 14 days of programming. The number ofdays is dependent upon the service provider. The EPG data covers, forexample, the U.S., Mexico, Canada, and other countries. Given that theEPG data is on the service provider's database 2103, the serviceprovider can retain all the EPG data that EPG providers have delivered.This gives the service provider historical data from which a user canobtain historical data or program names. The service can provide aclient device with information from the historical EPG data regardingmultimedia content such as when the content was last broadcast. Thistype of information is typically not obtainable in normal DVRs or EPGservices because EPG data is typically limited to a number of days, suchas 14 days. Search requests for content that is not in a typical 14-dayEPG would receive a null search response. In this embodiment, since theservice has the historical EPG data, the search requests would receive apositive hit as long as the content has been shown in the time frame ofthe service's EPG data.

The service 2104 performs searches on both databases 2101, 2103 usingthe search queries that it created. The databases 2101, 2103 can bedatabases that the service 2104 can directly access or database servershosting the databases or other database services. The service 2104receives or generates results from the search queries and organizes theretrieved information into a format that the client device 2105 can use.

In an embodiment, the service 2104 also has access to its own clientdevice database (not shown) where the service 2104 stores informationregarding the status of all the client devices in communication with theservice 2104. The client database includes, among other information, themultimedia content that the client devices have recorded. The service2104 can include in the search results that concern broadband content,multimedia content that is available to download from other clientdevices as described in U.S. patent application Ser. No. 11/285,411which is owned by the Applicants and is hereby incorporated byreference. A client device can request downloads of multimedia contentfrom multiple client devices and receive segments of the multimediacontent from those client devices. This allows a user to obtainmultimedia content that has not been broadcast for a long time periodand is not scheduled to be broadcast as well as not being available frompartners.

The client device 2105 receives the search results from the service2104. The client device 2105 processes the search results and displaysthe search results in a list 554 to the user. The list 554 begins withthe first multimedia content that matches the characters in the entryfield 401 that the user has entered. The list can be updated at eachcharacter entry or after a few seconds of inactivity from the user. Theuser may pause while entering characters to allow the list to berefreshed. The client device 2105 creates the search request to theservice 2104 upon each character entry or few seconds of inactivity.This gives the user a dynamic list that reacts to the user's input in arapid manner.

The user can also access the search mechanism through a programinformation screen that the user displays for a particular content thatis on an EPG or has been recorded. FIG. 13 shows a screen 1300 that isdisplayed for a recorded program. The screen 1300 allows the user tonavigate through menu options and select the search option 1304.

When the user selects a multimedia content from the list 554 or thesearch option 1304, the client device 2105 displays a screen as in FIG.14. The screen 1400 displays information related to the selectedmultimedia content. Information contained in the data sent from theservice 2104 is used to display program information such as the programsynopsis 1410. The received data also may contain additional searchterms 1402 that allow the user to select more search terms that arerelated to the multimedia content. The data may also contain searchrequest information regarding upcoming showings for the multimediacontent 1404 or available downloads for the multimedia content 1420.

If the user selects upcoming showings for the multimedia content 1404,the client device 2105 sends a search request to the service 2104 thatrequests information regarding upcoming showings for the multimediacontent. The service 2104 queries the broadcast database 2103 for theupcoming showings for the multimedia content and sends the resultingdata to the client device 2105. FIG. 15 illustrates a screen 1500displaying upcoming broadcast showings for the multimedia content usingdata received from the service 2104. The client device 2105 receives EPGdata relevant to channels the user receives, subscribes to, or thechannels that are available in the area that the client device is in.

In one embodiment, the service 2104 receives subscriber information 2106and looks up user data from a user data database 2102 in order to supplythe client device with the correct information regarding multimediacontent that is available to the specific user via broadcast orbroadband access. The service 2104 can use the user's information toformulate search queries from the broadband database 2101 and broadcastdatabase 2103 in order to find information that is appropriate for theuser's location, age, preferences, etc. In one embodiment, the service2104 can filter content information based on the user's age or clientdevice's parental control setting (described in further detail below).

If the user selects available downloads for the multimedia content 1420,the client device 2105 sends a search request to the service 2104 thatrequests information regarding available downloads for the multimediacontent. The service 2104 queries the broadband database 2101 for theavailable downloads for the multimedia content. As noted above, thisoperation could involve querying multiple partner databases. The service2104 sends the received query data to the client device 2105. FIG. 16illustrates a screen 1600 displaying available downloads for themultimedia content. In this example, some of the available downloads arefor episodes of a program series that are available from a partner. Thescreen 1600 can display the list of available downloads 1604 with thepartner's logo 1606 next to content titles available from thatparticular partner. The logo data can come from the broadband database2101 or the service 2104. The user can select an episode from the listof available downloads 1604 to download the content to his client device2105.

The download may originate from a partner and the user is presented witha screen that may display a synopsis of the episode and any costsassociated with the download. The user may also select a download thatis retrieved from other client devices as discussed above and asdescribed in U.S. patent application Ser. No. 11/285,411. The service2104 filters one or more client devices according to a number offactors, including bandwidth, to create a pool of client devices fortransferring the content. The service 2104 initiates the transfer byeither requesting each client device in the pool of client devices tobegin transferring the content to the requesting client device 2105, orby directly requesting the client device 2105 to retrieve the contentfrom the pool of client devices. The content is sent to the requestingclient device in portions which are re-assembled at the client device2105 and stored for later playback. It is not necessary for the user toknow where the download is originating from and the user may or may notbe told what mechanism is being used to download the episode.

FIG. 14 illustrates a screen 1400 displaying program information 1410for the multimedia content. The screen 1400 also displays an optionwhere the user can obtain more information about episodes (episodeguide) of the multimedia content 1408. If the user selects the episodeguide 1408, the client device 2105 sends a search request to the service2104 that requests information regarding episode information for themultimedia content. The service 2104 queries the broadcast database 2103and/or the broadband database 2101 for the episode information for themultimedia content. The service 2104 processes the received data andsends the processed data to the client device 2105.

FIG. 22 illustrates a screen 2200 displaying available episodes forspecific seasons for a particular series title. In an embodiment, eachtime the user selects a season further in the list 2201, the clientdevice 2105 sends a search request to the service 2104 that requestsinformation regarding episode information for the selected season forthe multimedia content. The service 2104 queries the broadcast database2103 and/or the broadband database 2101 for the season episodeinformation for the multimedia content. The service 2104 processes thereceived data and sends the processed data to the client device 2105.The client device 2105 displays the list of episodes to the user 2202.

FIG. 19 illustrates a screen 1900 displaying tags that are associatedwith the multimedia content or series title. The user can perform asearch by clicking on any of the tag keywords or phrases 1902. Theclient device 2105 creates a search request using the selected tag. Theservice 2104 performs a search of tag information contained in thebroadband database 2101 and/or the broadcast database 2103 in the samemanner as searches described above.

In an embodiment, the service 2104 creates the user interface screen forthe client device 2105 to display. Each time a client device sends asearch request to the service 2104, the service formats the datareceived from the searches of the databases into a user interface screenthat is presentable by the client device. The client device receives theuser interface screen and displays the screen as formatted by theservice 2104. The screen information instructs the client device on howit should respond to any key presses by the user. For example, the usermoves the highlight bar down and the client device checks which items onthe screen are selectable and moves the highlight bar to the nextselectable item on the screen. If the user selects an item, then theclient device looks at the screen information to see if the selectionoperation merits the highlight bar moving to another location orrequires that a search request be sent to the service 2104. This allowsthe service to change the look and feel of user interface screensdynamically without having to update the client device's software toimplement user interface changes. This approach is easily scalable andpresents a highly maintainable model. Alternatively, the client devicecan format its own user interface screens when it receives screeninformation from the service 304.

3.7 FILTERING BROADBAND AND BROADCAST MULTIMEDIA CONTENT SEARCH RESULTS

The service 2104 has the ability to filter database query resultsaccording to user preferences, user personal information, client devicesettings, etc. As briefly discussed above, in an embodiment, the usercan set preferences and personal information in his client device suchas channels that he receives, channels that he views, age, sex, showsthat the user likes and dislikes, the user's interests, credit cardinformation, home address, etc.

When a client device 2105 sends a search request to the service 2104,the service 2104 creates queries to the broadcast database 2103 and/orthe broadband database 2101. Upon receipt of the requested data, theservice 2104 can filter the data to customize the data for the clientdevice 2105. In one embodiment, the service 2104 can supply broadcastinformation to the client device 2105 that only pertains to the channelsthat the client device receives. In another embodiment, the service 2104can supply the client device 2105 with broadcast information that onlypertains to the channels that the user watches.

This type of filtering can be performed on an opt-in/opt-out basis. If auser opts-in, the user has given the service permission to use theuser's preferences and personal information 2102, 2106, to automaticallyfilter requested broadcast and/or broadband information to match theuser's preferences and personal information.

If the user opts-out, then the service can only use information that itknows about the client device 2105 that does not involve the user'spersonal information. The service 2104 is limited to the client device'slocale and channels that a client device would receive in that area fromthe local cable or satellite broadcaster.

The service 2104 can also filter information based on the type of clientdevice. For example, if the client device 2105 is a portable videodevice, then the service 2104 may send a condensed version of the searchresults to the client device 2105.

In an embodiment, the user can specify to the client device 2105 thathis selection of a search term is to be limited to a certain type ofmedia or access. For example, the user can specify that the search belimited to HD content only. The user could also specify that the contentlisted be available from broadband only or broadcast only. The user cancreate any combination of such search limitations. Another embodimentwould allow the user to specify combinations of tags that are displayedon a screen. Referring again to FIG. 19, for example, the user couldspecify combining the tags of Peter Riga 1920 and Prodigy 1910, orProdigy 1910 and Coming of Age 1904, or any other combination of tags.

The user has the capability to select each tag using the highlight bar.Each time the user selects a tag, he can press a button on a remotecontrol to signify that the selection is part of a combination. Once theuser has selected all of his desired terms, he can press another button(or the same button) on the remote control that tells the client device2105 that the search is to be performed. As an example, the user selectsProdigy 1910 and Coming of Age 1904 and also selects HD content only.The client device 2105 then formulates the search request and sends therequest to the service 2104. The service 2104 creates queries across thedatabases that are appropriate for the search. Here, since the user hasspecified that the search be HD content only, the service 2104 queriesthe broadband database 2101, or partner servers as mentioned above, andthe broadcast database 2103 for HD content that includes tags or othercontent information that match the search tags that were selected, i.e.,Prodigy and Coming of Age. The service 2104 returns the query results tothe client device 2105. The client device 2105 displays the searchresults to the user.

4.0 IMPLEMENTATION MECHANISMS

FIG. 23 is a block diagram that illustrates a computer system 2300 uponwhich an embodiment of the invention may be implemented. Computer system2300 includes a bus 2302 or other communication mechanism forcommunicating information, and a processor 2304 coupled with bus 2302for processing information. Computer system 2300 also includes a mainmemory 2306, such as a random access memory (RAM) or other dynamicstorage device, coupled to bus 2302 for storing information andinstructions to be executed by processor 2304. Main memory 2306 also maybe used for storing temporary variables or other intermediateinformation during execution of instructions to be executed by processor2304. Computer system 2300 further includes a read only memory (ROM)2308 or other static storage device coupled to bus 2302 for storingstatic information and instructions for processor 2304. A storage device2310, such as a magnetic disk or optical disk, is provided and coupledto bus 2302 for storing information and instructions.

Computer system 2300 may be coupled via bus 2302 to a display 2312, suchas a cathode ray tube (CRT), for displaying information to a computeruser. An input device 2314, including alphanumeric and other keys, iscoupled to bus 2302 for communicating information and command selectionsto processor 2304. Another type of user input device is cursor control2316, such as a mouse, a trackball, or cursor direction keys forcommunicating direction information and command selections to processor2304 and for controlling cursor movement on display 2312. This inputdevice typically has two degrees of freedom in two axes, a first axis(e.g., x) and a second axis (e.g., y), that allows the device to specifypositions in a plane.

The invention is related to the use of computer system 2300 forimplementing the techniques described herein. According to oneembodiment of the invention, those techniques are performed by computersystem 2300 in response to processor 2304 executing one or moresequences of one or more instructions contained in main memory 2306.Such instructions may be read into main memory 2306 from anothermachine-readable medium, such as storage device 2310. Execution of thesequences of instructions contained in main memory 2306 causes processor2304 to perform the process steps described herein. In alternativeembodiments, hard-wired circuitry may be used in place of or incombination with software instructions to implement the invention. Thus,embodiments of the invention are not limited to any specific combinationof hardware circuitry and software.

The term “machine-readable medium” as used herein refers to any mediumthat participates in providing data that causes a machine to operationin a specific fashion. In an embodiment implemented using computersystem 2300, various machine-readable media are involved, for example,in providing instructions to processor 2304 for execution. Such a mediummay take many forms, including but not limited to storage media andtransmission media. Storage media includes both non-volatile media andvolatile media. Non-volatile media includes, for example, optical ormagnetic disks, such as storage device 2310. Volatile media includesdynamic memory, such as main memory 2306. Transmission media includescoaxial cables, copper wire and fiber optics, including the wires thatcomprise bus 2302. Transmission media can also take the form of acousticor light waves, such as those generated during radio-wave and infra-reddata communications. All such media must be tangible to enable theinstructions carried by the media to be detected by a physical mechanismthat reads the instructions into a machine.

Common forms of machine-readable media include, for example, a floppydisk, a flexible disk, hard disk, magnetic tape, or any other magneticmedium, a CD-ROM, any other optical medium, punchcards, papertape, anyother physical medium with patterns of holes, a RAM, a PROM, and EPROM,a FLASH-EPROM, any other memory chip or cartridge, a carrier wave asdescribed hereinafter, or any other medium from which a computer canread.

Various forms of machine-readable media may be involved in carrying oneor more sequences of one or more instructions to processor 2304 forexecution. For example, the instructions may initially be carried on amagnetic disk of a remote computer. The remote computer can load theinstructions into its dynamic memory and send the instructions over atelephone line using a modem. A modem local to computer system 2300 canreceive the data on the telephone line and use an infra-red transmitterto convert the data to an infra-red signal. An infra-red detector canreceive the data carried in the infra-red signal and appropriatecircuitry can place the data on bus 2302. Bus 2302 carries the data tomain memory 2306, from which processor 2304 retrieves and executes theinstructions. The instructions received by main memory 2306 mayoptionally be stored on storage device 2310 either before or afterexecution by processor 2304.

Computer system 2300 also includes a communication interface 2318coupled to bus 2302. Communication interface 2318 provides a two-waydata communication coupling to a network link 2320 that is connected toa local network 2322. For example, communication interface 2318 may bean integrated services digital network (ISDN) card or a modem to providea data communication connection to a corresponding type of telephoneline. As another example, communication interface 2318 may be a localarea network (LAN) card to provide a data communication connection to acompatible LAN. Wireless links may also be implemented. In any suchimplementation, communication interface 2318 sends and receiveselectrical, electromagnetic or optical signals that carry digital datastreams representing various types of information.

Network link 2320 typically provides data communication through one ormore networks to other data devices. For example, network link 2320 mayprovide a connection through local network 2322 to a host computer 2324or to data equipment operated by an Internet Service Provider (ISP)2326. ISP 2326 in turn provides data communication services through theworld wide packet data communication network now commonly referred to asthe “Internet” 2328. Local network 2322 and Internet 2328 both useelectrical, electromagnetic or optical signals that carry digital datastreams. The signals through the various networks and the signals onnetwork link 2320 and through communication interface 2318, which carrythe digital data to and from computer system 2300, are exemplary formsof carrier waves transporting the information.

Computer system 2300 can send messages and receive data, includingprogram code, through the network(s), network link 2320 andcommunication interface 2318. In the Internet example, a server 2330might transmit a requested code for an application program throughInternet 2328, ISP 2326, local network 2322 and communication interface2318.

The received code may be executed by processor 2304 as it is received,and/or stored in storage device 2310, or other non-volatile storage forlater execution. In this manner, computer system 2300 may obtainapplication code in the form of a carrier wave.

In the foregoing specification, embodiments of the invention have beendescribed with reference to numerous specific details that may vary fromimplementation to implementation. Thus, the sole and exclusive indicatorof what is the invention, and is intended by the applicants to be theinvention, is the set of claims that issue from this application, in thespecific form in which such claims issue, including any subsequentcorrection. Any definitions expressly set forth herein for termscontained in such claims shall govern the meaning of such terms as usedin the claims. Hence, no limitation, element, property, feature,advantage or attribute that is not expressly recited in a claim shouldlimit the scope of such claim in any way. The specification and drawingsare, accordingly, to be regarded in an illustrative rather than arestrictive sense.

1-69. (canceled)
 70. A method, comprising: in response to receiving,from a user viewing a first screen, a search string input comprising twoor more alphanumeric characters: performing a search based on the searchstring input to create a list of search terms, each term in the listcontaining the two or more alphanumeric characters received in thesearch string input; and generating for display the list of searchterms; receiving a selection of a particular search term from the listof search terms; and in response to receiving the selection of theparticular search term from the list of search terms: performing asearch based upon the selected search term from the list of searchterms; determining whether a privacy policy opt-in indication wasreceived for the user prior to receiving the search string input, theprivacy policy opt-in being a consent to store private informationassociated with the user; in response to determining that the privacypolicy opt-in indication was received for the user prior to receivingthe search string input, filtering results of the search based on thestored private information; generating for display the filtered resultsof the search in a first navigation list in a first area on a secondscreen, the first navigation list comprising the results of the searchas a first plurality of selectable terms; placing a cursor to highlighta current selectable term in the first navigation list in the first areaof the second screen, the current selectable term corresponding to aresult in the results of the search, and generating for display a secondnavigation list in a second area on the second screen, the secondnavigation list comprising a second plurality of selectable terms oractions based upon the current selectable term of the first navigationlist, the second area being different from the first area.
 71. Themethod of claim 70, further comprising: receiving, from the user, aselection of one of the selectable terms in the second navigation list;in response to a selection of one of the selectable terms in the secondnavigation list, performing a second search, with the second searchusing the selected term from the second navigation list if the selectedterm in the second navigation list is a searchable term; generating fordisplay results of the second search comprising a third navigation listin a third area of selectable terms based upon the selected search termin the second navigation list, wherein a current selectable term ishighlighted, and a fourth navigation list in a fourth area of selectableterms or actions based upon the current selectable term of the thirdnavigation list; and initiating performance of the action indicated bythe selected term if the selected term in the second navigation is anaction.
 72. The method of claim 71, further comprising: receiving aselection of one of the selectable terms in a previously displayednavigation list; performing a search of the selected term if theselected term in the previously displayed navigation list is asearchable term; generating for display results of the search comprisinga current navigation list in one area of selectable terms based upon theselected search term in the previously displayed navigation list,wherein a current selectable term is highlighted, and a subsequentnavigation list in another area of selectable terms or actions basedupon the current selectable term of the current navigation list; andinitiating performance of the action indicated by the selected term ifthe selected term in the subsequent navigation list is an action. 73.The method of claim 70, wherein the list of search terms comprises anycombination of: tags, program titles, and credits.
 74. The method ofclaim 70, wherein the results of the search includes or excludes anyrelated data or categories of data.
 75. The method of claim 70, whereinthe results of the search comprises results that are allowed accordingto a privacy level selected by the user.
 76. The method of claim 75,wherein the user is able to change the privacy level.
 77. The method ofclaim 73, wherein the credits comprise any combination of: actors,writers, directors, character names, or producers.
 78. The method ofclaim 70, wherein the actions comprise recording and downloading. 79.The method of claim 78, further comprising initiating performance of oneof the actions, by: scheduling a recording of an upcoming showing of thecontent if the action indicates recording content; and initiating adownload of the content if the action indicates downloading content. 80.The method of claim 79, wherein the upcoming showing of the content isscheduled to be broadcast within a specified number of days.